1 from tkinter import*
2 import tkinter.messagebox
3 import random
4 import Std_info_BackEnd
5 from tkinter import ttk
6
7 class Std_info():
8 def __init__(self, master):
9 self.master = master
10 self.master.title('School Management System/Student Information')
11 self.master.geometry('1350x750')
12 self.master.config(bg = 'lightblue')
13
14 def information():
15 #========================================================Variables=====================================================================
16 self.name = StringVar()
17 self.fname = StringVar()
18 self.mname = StringVar()
19 self.address = StringVar()
20 self.mobno = StringVar()
21 self.email = StringVar()
22 self.dob = StringVar()
23 self.gender = StringVar()
24
25
26
27 #==========================================================Functions====================================================================
28 def StudentRec(event):
29 try:
30 global selected_tuple
31
32 index = self.listbox.curselection()[0]
33 selected_tuple = self.listbox.get(index)
34
35 self.Entry_name.delete(0, END)
36 self.Entry_name.insert(END, selected_tuple[1])
37 self.Entry_fname.delete(0, END)
38 self.Entry_fname.insert(END, selected_tuple[2])
39 self.Entry_mname.delete(0, END)
40 self.Entry_mname.insert(END, selected_tuple[3])
41 self.Entry_address.delete(0, END)
42 self.Entry_address.insert(END, selected_tuple[4])
43 self.Entry_mobno.delete(0, END)
44 self.Entry_mobno.insert(END, selected_tuple[5])
45 self.Entry_emailID.delete(0, END)
46 self.Entry_emailID.insert(END, selected_tuple[6])
47 self.Entry_dob.delete(0, END)
48 self.Entry_dob.insert(END, selected_tuple[7])
49 self.Entry_gender.delete(0, END)
50 self.Entry_gender.insert(END, selected_tuple[8])
51 except IndexError:
52 pass
53
54
55 def Add():
56 if(len(self.name.get()) != 0):
57 Std_info_BackEnd.insert(self.name.get(), self.fname.get(), self.mname.get(), self.address.get(), self.mobno.get(), self.email.get(), self.dob.get(), \
58 self.gender.get())
59 self.listbox.delete(0, END)
60 self.listbox.insert(END, (self.name.get(), self.fname.get(), self.mname.get(), self.address.get(), self.mobno.get(), self.email.get(), self.dob.get(), \
61 self.gender.get()))
62
63 def Display():
64 self.listbox.delete(0, END)
65 for row in Std_info_BackEnd.view():
66 self.listbox.insert(END, row, str(' '))
67
68
69 def Exit():
70 Exit = tkinter.messagebox.askyesno("Login System", "Confirm if you want to Exit")
71 if Exit > 0:
72 self.master.destroy()
73 return
74
75
76 def Reset():
77 self.name.set('')
78 self.fname.set('')
79 self.mname.set('')
80 self.address.set('')
81 self.mobno.set('')
82 self.email.set('')
83 self.dob.set('')
84 self.gender.set('')
85 self.listbox.delete(0, END)
86
87
88
89 def Delete():
90 if(len(self.name.get()) != 0):
91 Std_info_BackEnd.delete(selected_tuple[0])
92 Reset()
93 Display()
94
95
96 def Search():
97 self.listbox.delete(0, END)
98 for row in Std_info_BackEnd.search(self.name.get(), self.fname.get(), self.mname.get(), self.address.get(), self.mobno.get(), self.email.get(), self.dob.get(),self.gender.get()):
99 self.listbox.insert(END, row, str(' '))
100
101
102 def Update():
103 if(len(self.name.get()) != 0):
104 Std_info_BackEnd.delete(selected_tuple[0])
105 if(len(self.name.get()) != 0):
106 Std_info_BackEnd.insert(self.name.get(), self.fname.get(), self.mname.get(), self.address.get(), self.mobno.get(), self.email.get(), self.dob.get(), \
107 self.gender.get())
108
109 self.listbox.delete(0, END)
110 self.listbox.insert(END, (self.name.get(), self.fname.get(), self.mname.get(), self.address.get(), self.mobno.get(), self.email.get(), self.dob.get(), \
111 self.gender.get()))
112
113
114
115 #============================================================Frames=====================================================================
116
117 self.Main_Frame = LabelFrame(self.master, width = 1300, height = 500, font = ('arial',20,'bold'), \
118 bg = 'lightblue',bd = 15, relief = 'ridge')
119 self.Main_Frame.grid(row = 0, column = 0, padx = 10, pady = 20)
120
121 self.Frame_1 = LabelFrame(self.Main_Frame, width = 600, height = 400, font = ('arial',15,'bold'), \
122 relief = 'ridge', bd = 10, bg = 'lightblue', text = 'STUDENT INFORMATION ')
123 self.Frame_1.grid(row = 1, column = 0, padx = 10)
124
125 self.Frame_2 = LabelFrame(self.Main_Frame, width = 750, height = 400, font = ('arial',15,'bold'), \
126 relief = 'ridge', bd = 10, bg = 'lightblue', text = 'STUDENT DATABASE')
127 self.Frame_2.grid(row = 1, column = 1, padx = 5)
128
129 self.Frame_3 = LabelFrame(self.master, width = 1200, height = 100, font = ('arial',10,'bold'), \
130 bg = 'lightblue', relief = 'ridge', bd = 13)
131 self.Frame_3.grid(row = 2, column = 0, pady = 10)
132
133
134
135 #========================================================Labels of Frame_1========================================================
136 self.Label_name = Label(self.Frame_1, text = 'Name', font = ('arial',20,'bold'), bg = 'lightblue')
137 self.Label_name.grid(row = 0, column = 0, sticky = W, padx = 20, pady = 10)
138 self.Label_fname = Label(self.Frame_1, text = 'Father Name', font = ('arial',20,'bold'), bg = 'lightblue')
139 self.Label_fname.grid(row = 1, column = 0, sticky = W, padx = 20)
140 self.Label_mname = Label(self.Frame_1, text = 'Mother Name', font = ('arial',20,'bold'), bg = 'lightblue')
141 self.Label_mname.grid(row = 2, column = 0, sticky = W, padx = 20)
142 self.Label_address = Label(self.Frame_1, text = 'Address', font = ('arial',20,'bold'), bg = 'lightblue')
143 self.Label_address.grid(row = 3, column = 0, sticky = W, padx = 20)
144 self.Label_mobno = Label(self.Frame_1, text = 'Mobile Number', font = ('arial',20,'bold'), bg = 'lightblue')
145 self.Label_mobno.grid(row = 4, column = 0, sticky = W, padx = 20)
146 self.Label_emailID = Label(self.Frame_1, text = 'Email ID', font = ('arial',20,'bold'), bg = 'lightblue')
147 self.Label_emailID.grid(row = 5, column = 0, sticky = W, padx = 20)
148 self.Label_dob = Label(self.Frame_1, text = 'Date of Birth', font = ('arial',20,'bold'), bg = 'lightblue')
149 self.Label_dob.grid(row = 6, column = 0, sticky = W, padx = 20)
150 self.Label_gender = Label(self.Frame_1, text = 'Gender', font = ('arial',20,'bold'), bg = 'lightblue')
151 self.Label_gender.grid(row = 7, column = 0, sticky = W, padx = 20, pady = 10)
152
153
154 #========================================================Entries of Frame_1========================================================
155 self.Entry_name = Entry(self.Frame_1, font = ('arial',17,'bold'), textvariable = self.name)
156 self.Entry_name.grid(row = 0, column = 1, padx = 10, pady = 5)
157 self.Entry_fname = Entry(self.Frame_1, font = ('arial',17,'bold'), textvariable = self.fname)
158 self.Entry_fname.grid(row = 1, column = 1, padx = 10, pady = 5)
159 self.Entry_mname = Entry(self.Frame_1, font = ('arial',17,'bold'), textvariable = self.mname)
160 self.Entry_mname.grid(row = 2, column = 1, padx = 10, pady = 5)
161 self.Entry_address = Entry(self.Frame_1, font = ('arial',17,'bold'), textvariable = self.address)
162 self.Entry_address.grid(row = 3, column = 1, padx = 10, pady = 5)
163 self.Entry_mobno = Entry(self.Frame_1, font = ('arial',17,'bold'), textvariable = self.mobno)
164 self.Entry_mobno.grid(row = 4, column = 1, padx = 10, pady = 5)
165 self.Entry_emailID = Entry(self.Frame_1, font = ('arial',17,'bold'), textvariable = self.email)
166 self.Entry_emailID.grid(row = 5, column = 1, padx = 10, pady = 5)
167 self.Entry_dob = Entry(self.Frame_1, font = ('arial',17,'bold'), textvariable = self.dob)
168 self.Entry_dob.grid(row = 6, column = 1, padx = 10, pady = 5)
169 self.Entry_gender = ttk.Combobox(self.Frame_1, values = (' ','Male','Female','Others'),\
170 font = ('arial',17,'bold'), textvariable = self.gender, width = 19)
171 self.Entry_gender.grid(row = 7, column = 1, padx = 10, pady = 5)
172
173
174
175
176 #========================================================Buttons of self.Frame_3=========================================================
177 self.btnSave = Button(self.Frame_3, text = 'SAVE', font = ('arial',17,'bold'), width = 8, command = Add)
178 self.btnSave.grid(row = 0, column = 0, padx = 10, pady = 10)
179 self.btnDisplay = Button(self.Frame_3, text = 'DISPLAY', font = ('arial',17,'bold'), width = 8, command = Display)
180 self.btnDisplay.grid(row = 0, column = 1, padx = 10, pady = 10)
181 self.btnReset = Button(self.Frame_3, text = 'RESET', font = ('arial',17,'bold'), width = 8, command = Reset)
182 self.btnReset.grid(row = 0, column = 2, padx = 10, pady = 10)
183 self.btnUpdate = Button(self.Frame_3, text = 'UPDATE', font = ('arial',17,'bold'), width = 8, command = Update)
184 self.btnUpdate.grid(row = 0, column = 3, padx = 10, pady = 10)
185 self.btnDelete = Button(self.Frame_3, text = 'DELETE', font = ('arial',17,'bold'), width = 8, command = Delete)
186 self.btnDelete.grid(row = 0, column = 4, padx = 10, pady = 10)
187 self.btnSearch = Button(self.Frame_3, text = 'SEARCH', font = ('arial',17,'bold'), width = 8, command = Search )
188 self.btnSearch.grid(row = 0, column = 5, padx = 10, pady = 10)
189 self.btnExit = Button(self.Frame_3, text = 'EXIT', font = ('arial',17,'bold'), width = 8, command = Exit)
190 self.btnExit.grid(row = 0, column = 6, padx = 10, pady = 10)
191
192
193
194 #===============================================List Box and self.scrollbar========================================================
195 self.scrollbar = Scrollbar(self.Frame_2)
196 self.scrollbar.grid(row = 0, column = 1, sticky = 'ns')
197
198 self.listbox = Listbox(self.Frame_2, width = 75, height = 20 , font = ('arial',12,'bold'))
199 self.listbox.bind('<<ListboxSelect>>', StudentRec)
200 self.listbox.grid(row = 0, column = 0)
201 self.scrollbar.config(command = self.listbox.yview)
202
203 information()
204
205
206 root = Tk()
207 obj = Std_info(root)
208 root.mainloop()